/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejerciciovectorenteros;

/**
 *
 * @author AdminLocal
 */
public class GestorVector
{

    private int[] lista;

    public GestorVector()
    {
        lista = new int[0];
    }

    public void añadirValor(int nuevoValor)
    {
        int[] nuevaLista = new int[lista.length + 1];
        for (int i = 0; i < lista.length; i++)
        {
            nuevaLista[i] = lista[i];
        }
        nuevaLista[nuevaLista.length - 1] = nuevoValor;
        lista = nuevaLista;
    }

    public void añadirValorOrdenado(int valor)
    {
        int i = 0;
        while ((i < lista.length) && (lista[i] < valor))
        {
            i++;
        }
        insertarEn(valor, i);
    }

    public void insertarEn(int valor, int posicion)
    {
        int[] nuevaLista = new int[lista.length + 1];
             for (int i = 0; i < nuevaLista.length; i++)
            {
                if (i < posicion)
                {
                    nuevaLista[i] = lista[i];
                } else if (i > posicion)
                {
                    nuevaLista[i] = lista[i - 1];
                }
            }
            nuevaLista[posicion] = valor;
        lista = nuevaLista;
    }

    public void borrarValor(int valor)
    {
        int pos = posicionDe(valor);
        if (pos > -1)
        {
            int[] nuevaLista = new int[lista.length - 1];
            for (int i = 0; i < lista.length; i++)
            {
                if (i < pos)
                {
                    nuevaLista[i] = lista[i];
                } else if (i > pos)
                {
                    nuevaLista[i - 1] = lista[i];
                }
            }
            lista = nuevaLista;
        }
    }

    public int posicionDe(int valor)
    {
        for (int i = 0; i < lista.length; i++)
        {
            if (lista[i] == valor)
            {
                return i;
            }
        }
        return -1;
    }

    public boolean contiene(int valor)
    {
        return (posicionDe(valor) > -1);
    }

    @Override
    public String toString()
    {
        String cadena = "\n\rLista de valores:";
        for (int i : lista)
        {
            cadena += " " + i;
        }
        return cadena;
    }
}
